Program Refactoring, Program Synthesis, and Model-Driven Development
نویسنده
چکیده
Program refactoring, feature-based and aspect-oriented software synthesis, and model-driven development are disjoint research areas. However, they are all architectural metaprogramming technologies as they treat programs as values and use functions (a.k.a. transformations) to map programs to other programs. In this paper, I explore their underlying connections by reviewing recent advances in each area from an architectural metaprogramming perspective. I conjecture how these areas can converge and outline a theory that may unify them.
منابع مشابه
Formal Model-Driven Program Refactoring
Evolutionary tasks, specially refactoring, affect source code and object models, hindering correctness and conformance. Due to the gap between object models and programs, refactoring tasks get duplicated in commonly-used model-driven development approaches, such as Round-Trip Engineering. In this paper, we propose a formal approach to consistently refactor systems in a model-driven manner. Each...
متن کاملSynchronizing Model and Program Refactoring
Object models provide abstract information about software structure, but their maintenance is difficult after refactoring takes place. In ModelDriven Development (MDD), effective transferral of model refactoring changes to programs is problematic, especially if these programs are subject to developer manipulation. Consequently, code-driven approaches end up being adopted. We formalize a theory ...
متن کاملModel-driven Software Refactoring
In this chapter, we explore the emerging research domain of model-driven software refactoring. Program refactoring is a proven technique that aims at improving the quality of source code. Applying refactoring in a model-driven software engineering context raises many new challenges such as how to define, detect and improve model quality, how to preserve model behavior, and so on. Based on a con...
متن کاملA Model-driven Approach to Program Refactoring
Refactoring object-oriented programs along with their associated models usually involve complex maintenance efforts, in order to keep those artifacts correct and up to date. Most projects abandon design information in the form of models early in the life cycle, as their sustentation turns out extremely expensive. In this paper, we propose an approach for refactoring object-oriented programs by ...
متن کاملKayak: Safe Semantic Refactoring to Java Streams
Refactorings are structured changes to existing software that leave its externally observable behaviour unchanged. Their intent is to improve readability, performance or other non-behavioural properties. State-of-the-art automatic refactoring tools are syntax-driven and, therefore, overly conservative. In this paper we explore semantics-driven refactoring, which enables much more sophisticated ...
متن کامل